/**
 * 标记整理
 * 工作流程：从根节点查找所有能找到的对象，把有引用的对象标记上，
 * 结束后移动所有的没有标记的对象，把它们所在的空间移动到一起，然后遍历所有的没有标记的对象并清除掉。
 * 完成后清除所有的标记；这样原本碎片化的空间就变成了一整块连续空间，后面在申请空间时利用效率更高。
 * 结束后重复上面的过程。
 * 
 */